#include <algorithm>
#include <iostream>
#include <cmath>
#include <fstream>
#include <iomanip> // 用于设置输出格式

using namespace std;

double func_f(double x) {
    return pow(x, 8) - 8 * pow(x, 7) + 28 * pow(x, 6) - 56 * pow(x, 5) + 70 * pow(x, 4) - 56 * pow(x, 3) + 28 * pow(x, 2) - 8 * x + 1;
}

double func_g(double x) {
    return (((((((x - 8) * x + 28) * x - 56) * x + 70) * x - 56) * x + 28) * x - 8) * x + 1;
}

double func_h(double x) {
    return pow(x - 1, 8);
}

int main(int argc, char* argv[]) {
    ofstream A;
    A.open("A.txt");

    // 设置输出精度
    A << fixed << setprecision(10);

    A << "x" << " : " << "f(x)" << " , " << "g(x)" << " , " << "h(x)" << endl;

    for (double x = 0.99; x <= 1.010001; x += 0.0002) { // 调整循环条件以包含1.01
        A << x << " : " << func_f(x) << " , " << func_g(x) << " , " << func_h(x) << endl;
    }

    A.close();
    return 0;
}
